﻿#include "BinaryTree.h"

//int main()
//{
	/*Key::BSTree<int> t;
	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
	for (auto e : a)
	{
		t.Insert(e);
	}
	t.InOrder();*/
	//t.Insert(16);
	//t.InOrder();

	//for (auto e : a)
	//{
	//	t.Erase(e);
	//	t.InOrder();
	//}
//
//	return 0;
//}

int main()
{
	//Key_Value::BSTree<string, string> dict;
	////BSTree<string, string> copy = dict;
	//dict.Insert("left", "左边");
	//dict.Insert("right", "右边");
	//dict.Insert("insert", "插入");
	//dict.Insert("string", "字符串");
	//string str;
	//while (cin >> str) // 使用Ctrl+Z终止
	//{
	//	auto ret = dict.Find(str);
	//	if (ret)
	//	{
	//		cout << "->" << ret->_value << endl;
	//	} 
	//	else
	//	{
	//	cout << "无此单词，请重新输入" << endl;
	//	}
	//} 

	//string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜", "苹果", "香蕉", "苹果", "香蕉" };
	//Key_Value::BSTree<string, int> countTree;
	//for (const auto& str : arr)
	//{
	//	// 先查找⽔果在不在搜索树中
	//	// 1、不在，说明⽔果第⼀次出现，则插⼊<⽔果, 1>
	//	// 2、在，则查找到的结点中⽔果对应的次数++
	//	//BSTreeNode<string, int>* ret = countTree.Find(str);
	//	auto ret = countTree.Find(str);
	//	if (ret == NULL)
	//	{
	//		countTree.Insert(str, 1);
	//	} 
	//	else
	//	{
	//	ret->_value++;
	//	}
	//} 
	//countTree.InOrder();

	//Key_Value::BSTree<string, int> Copytree(countTree);
	//Copytree.InOrder();

	Key::BSTree<int> t;
	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
	for (auto e : a)
	{
		t.Insert(e);
	}
	t.InOrder();

	Key::BSTree<int> tmp(t);
	tmp.InOrder();

	return 0;
}